@Soft , Inc. is in no way related to @Soft, makers of MacAmp.
The author can be reached at rafaelwl@sumter.net
Contents of ths Document
- Quicknotes for this Release
- What's the MPecker Encoder?
- Why MPecker Encoder?
- Where to Get More MPEG Information
- How to Use the MPecker Encoder
-Setting Preferences
- Where to Get Updates
- Disclaimer/Distribution Rights
- Registering MPecker Encoder
- Things Left to Do
- Frequently Asked Questions (or READ THIS BEFORE SENDING ME EMAIL)
- How to Report Bugs
- Credits
- Version History
Quicknotes for this Release
This version is Beta Release 19.
The expiry remains May 31, 1999. This program will no longer function after May 31, 1999.
Changes for release b19:
1) Fixed memory corruption error.
Changes for release b18:
1) Changed MacAmp selector for filetype/creator to be QuickTime. Everytime I turn around, a new version of MacAmp makes a new filetype and/or creator, and trying to support each and every change is just too much trouble. Now that QT4 supports mp3, you can select a file type of QuickTime instead. SoundApp is still available.
2) Added a choice to encode either the left or right channel, or to combine the two channels into mono.
3) Genre now "sticks" between encodes. Rock now no longer becomes "Booty Bass," for example, between encodes.
4) Fixed an add folder problem with some extended CD lengths.
5) Improved layer II speed and repaired a layer II bug.
The feature set is now frozen. No new features will be added until further notice. Please restrict all email to bug reports so that I can address them as rapidly as possible.
Happy encoding and beta testing,
Rafael
What's the MPecker Encoder?
MPecker Encoder is a MacOS program designed to encode AIFF, Sound Designer II or PCM audio files. It supports all MPEG-1 and MPEG-2 sampling frequencies for AIFF and Sound Designer II files, and 44100 Hz Stereo for PCM files. Several bitrates are available, and MPecker can encode mono as well as stereo audio files.
Why MPecker Encoder
No other mp3 shareware/freeware encoder presently exists for the MacOS. I wanted MacOS users to enjoy what PC users have enjoyed since the Fraunhofer Institute released their mp3 encoder for other platforms.
Where to Get More MPEG Information
Kyle DeGraaf runs a frequently updated, and current web site at http://www.cbd.net/kdegraaf/mp3.html
It has many useful utilities, and links to other sites, plus he usually has the newest version on his web site, sometimes within minutes of its release. He's been around at least as long as MPecker.
David Renelt also has a very popular Macintosh and PC MPEG web page at http://www.raum.com/mpeg
It has alot of information, as well as links to other sites, and a ton of letters and comments from yours truly, and other MPEG audio afficionados.
How to Use the MPecker Encoder
Mpecker will run on any MacOS PPC machine, and will encode AIFF files or Sound Designer II files sampled at appropriate frequencies into mpeg files. It will also encode 44100 Hz PCM files as well. Supported sampling frequencies are: 44100, 48000, 32000, 24000, 22050, and 16000 Hz.
To start the encoder, you may either drag files onto the MPecker icon, and they will be encoded based on your previously set preferences, or you may use the Command-O command to select one or more files for encoding. Anything you select will be encoded, no matter whether it is a sound file or not. This means text files, binary files, ANYTHING you select or drag-n-drop will be encoded.
Setting Preferences
If you select this choice from the menu bar, you can choose several different options for encoding your file. If you know nothing about MPEG, use joint stereo, 128 kbps, layer III, model "Complex."
Encoding/System Preferences
Layer II or III
These are different means for encoding music files. Layer II is less complex, but sounds better at higher bitrates. Stereo reproduction in this layer is very good for bitrates of 128 kbps and up. Layer III more complex than layer II. It combines the features of layer II, and adds a modified FFT and a Modified Discrete Cosine Transform (MDCT) to the encoding process, and also "packs" each frame using Huffman encoding, thus it takes ALOT of computation time to encode in layer III.
There is a great deal of debate on whether layer II or layer III is the more robust of the encoding implementations. At bitrates of 128 kbps and higher, arguably layer II is better at reproduction in my opinion. Nevertheless, there is a bias toward layer III on the internet, probably only because it is more complex, and because III comes after II, rather than any real audio quality advantage with III over II.
Bitrates (Mono and Stereo)
The bitrate is the number of bits used to encode the audio sample for each second of music. For example, a bitrate of 128 kbps means that there are 128,000 bits (16,000 bytes) used to encode each second of music. While that sounds like alot, realize that there are 176,200 BYTES (1,409,600 bits!) for every second of music in a 44.1 kHz stereo AIFF file. Thus you can see the significant advantage of encoding in MPEG audio.
In general, most people will leave the stereo bitrate at 128 kbps and the mono bitrate at 64 kbps. For both stereo and mono files, if you find your particular file sounds "distorted" or like music is "missing," try a higher bitrate. Mono and stereo bitrates can be set separately in the preferences window
Psy Model
The different "Models" listed in this popup menu selection reflect different ways for MPecker to "listen to the music", and deciding what should stay and what is irrelevant. Depending on your speed requirements and your acoustic tastes, and depending on the source input, the different models allow you to customize the way MPecker interprets your music file.
Complex is the slowest, but arguably the best. The other two are "hacks" but are faster. Use the other two at your own risk.
Encode Mono As Stereo
Selecting this will convert your mono input files to stereo before encoding. There is not a good reason I can think of why anyone would want to do this, but someone asked for it, so here is the switch.
Stereo Mode
There are two possible choices here: stereo and joint stereo.Stereo is self-explanatory. The term that may sound unfamiliar is "joint stereo." Joint stereo is an encoding algorithm used to increase the quality of the encoding. If the total distortion of the music exceeds an implementation dependent value, then subbands of the audio are combined, highest frequencies first, so that less space is required to encode the entire file. This tends to make the treble sound a bit flatter than a stereo encoding would, but improves the reproduction of the mid and lower range frequencies.
The most common encoding options found in MPEG files on the internet are: 128 kbps, joint stereo, layer III. See my layer discussion above. For your own purposes, you may want to experiment with different settings to generate your favorite "flavor" of MPEG files. My personal preferences are either layer II stereo 128 kbps, or layer III stereo 128kbps.
Do not confuse MPEG layer III with MPEG-3. There is no MPEG-3 as an IS. MPEG-1 is the original MPEG audio standard, and has layer I, II and III encoding. It supports 32 kHz, 44.1 kHz, and 48 kHz sampling rates. Thus, all files encoded from a 44.1 kHz sampled file are MPEG-1 Layer I, II or III files. MPEG-2 was developed after MPEG-1 with the goal of supporting lower sampling frequencies. MPEG-2 supports 16 kHz, 22.05 kHz, and 24 kHz sampling frequencies, thus all files encoded from a 22.05 kHz sampled fileare MPEG-2 layer I, II or III files. The commonly used suffix ".mp3" iscommonly referred to as "MPEG 3" files, but really, it is an MPEG-1 or MPEG-2 layer III file, depending on the sampling frequency as discussed above.
Delete Source Files After Encoding
This option will remove the source or input file from your storage system (if possible) after it has been encoded.
Monopolize the CPU
This option, when checked, will cause the program to hog the CPU at the expense of other processes. Other tasks will become quite unresponsive, and so will the encoder's controls. This option is probably best saved for those instances where you want to start a long batch encoding and leave for the evening, and is not for routine use.
I/O Preferences
CD Import Routine
Here you may choose how the QT routine extracts your CD audio - as mono or stereo, and as 44100 Hz files or 22050 Hz files. Standard CD Audio is 44100 Hz stereo, so this is the default selection. This does NOT affect the "OPEN CD..." command as CDs opened this way are read using raw hardware i/o calls and not QT, and are always 44100 Hz stereo.
Encoded File Destination
This option allow you to decide where you want your encoded files to be placed. You may choose same as original (which for obvious reasons won't work for CD import), same as the application, or choose to be asked for a destination folder.
Change Output Destination
This will appear only if you have already chosen a directory for output. Check the box to be able to choose a new directory.
Scratch File Destination
This option allow you to decide where you want your temporary files to be placed. You may choose same as the output file (i.e. your encoded file destination choice), same as the application's location, or use the temporary items folder.
The 'temporary items' folder is good for temporary files, but it usually resides on your boot volume, and the folder is invisible, thus if the encode stops for some reason, you can't delete the temporary file. It will be deleted automatically at your next reboot, however.
Output Preferences
Tag Options
Add ID3v2 Tags
This option will enable the addition of ID3v2 Tag information to the beginning of files (so you all can watch that nice scrolly thing in MacAmp and other programs). At the END of your batch encoding, a dialog will prompt you for the Tag information. Do NOT move your encoded files until the program is done running, or you will confuse the encoder.
Also Please note that NOT ALL players/decoders/tag editors recognize the ID3v2 standard.
Add ID3v1 Tags
This option will enable the addition of ID3v1 Tag information to the end of files. Similar to that described in ID3v2 tags, a dialog will prompt you for the Tag information. Do NOT move your encoded files until the program is done running, or you will confuse the encoder.
Many, BUT NOT ALL players/decoders/tag editors recognize the ID3v1 standard.
Use CD Remote Database
This option will enable an automatic fill-in of the ID3v2 tag information at the TAG dialog when you are importing and encoding from a CD. It checks your "CD Remote Programs" file for CD information about the CD you are encoding. If you query the CDDB using such programs as MacCDDB, NetCD, or inCDius about your CD before you encode it, then all of this information will be entered and saved in your "CD Remote Programs" file for retrieval by MPecker.
Query CDDB if Necessary
This option when enabled will query the CDDB database if the current CD is not in your local CD Database. It requires a currently active internet connection.
Auto Tag Completion
This option when enabled will skip the dialog for Tag completion, and use either the CDDB information or the CD database information and automatically complete the ID3 tags without further user intervention.
Def. Genre
This allows you to set the default genre for your ID3 tags. The genre may also be changed from the ID3 tag dialog at the end of encoding, but if your "auto tag completion" flag is set, the genre will automatically be filled in using this default.
Filename Options
Add .mpN to Tag Filename
This option will add the suffix ".mp2" or ".mp3" to the filename in the TAG dialog display if you would like it.
Add Track # to Name
This option when enabled will allow you to append the track number to the filename. In other words, the trackname of track 6 named <trackname> will be changed to 06-<trackname>, the 10th track: 10-<trackname> etc etc.
Convert Spaces to '_'
Convert any blank spaces ' ' to '_'. Useful if you plan to use your files on inferior operating systems which do not allow spaces in names.
Cap 1 Letter Each Word
This option will capitalize the first letter of each word if enabled.
Name Using CD Remote Database
This option when enabled will use the track name in the CD Remote Database or CDDB to name the file. Useful only when importing from CDs and not using any Tags.
Output Filetype
This option will change the filetype to that used by SoundApp, MacAmp, or leave it as raw binary.
Separate CDs in Subfolders
When checked will create a new subfolder with the title and artist as the name for holding the encoded files. Only active during CD encoding.
CDDB Server Options
You can use these text edit lines to change your username, host, the cddb server you wish to use, and the port number.
Where to Get Updates
Any available updates for the MPeckers can be found at the MPecker website at http://www.anime.net/~go/mpeckers.html
This version expires on May 31, 1999. It will not function after this date.
Disclaimer/Distribution Rights
This archive and its complete contents may be distributed to any end-user, as long as there is no charge for it. It may not be included in any commercial or "shareware" software release without express, written non-electronic permission from the author.
Permission is given for distribution on freeware/shareware CD archives as long as:
(1) The archive compilation is made and sold on a non-profit basis;
(2) No modifications are made to the archive or it's contents; and
(3) A copy of the CD archive is forwarded at no cost to the author.
The archive may also be included on CD archives distributed by magazine publishers, provided that:
(1) No modifications are made to the archive or it's contents; and
(2) A copy of both the magazine and the CD archive are forwarded at no cost to the author.
No warranties or guarantees, either expressed or implied, are made with regard to this program, or its output or performance. The end-user accepts this program as is, and use of the program indicates an acceptance of responsibility for any damage occuring as a result of this use. This version is a beta-version, and is distributed for means of testing and debugging only, and not meant for everyday use.
The user of this program accepts responsibility for obeying all applicable copyright law. MPecker Encoder does not set the copyright bit, and no permission is given for encoding copyrighted material.
Registering MPecker Encoder
This program is fully functional (sans the bugs) and is not crippled in any way. No registration is required.
If you would like to send me something for my work, write a program and submit it for everyone to use. If you are an author of shareware or crippleware, send me a registered version of your program.
Things Left to Do
1) Feature set frozen.
Frequently Asked Questions
(0) I can't get player <XXX> to play files I encode with MPecker. What's wrong?
Well, many "mpeg" players can't play all mpeg audio files. Please make sure your player supports the type of encoding you have made.
There are a variety of players, and other useful utilities on Kyle De Graaf's mp3 web page at http://www.cbd.net/kdegraaf/mp3.html
(1) Why wouldn't MPecker recognize my AIFF file for encoding? and
(2) Why is my mpeg output file garbled and distorted?
There are many good reasons why this may happen. The header may not be a standard header or may be corrupt. The AIFF file may be sampled at an unsupported rate, or you may be trying to encode a file that is not an AIFF file.
If your output file is distorted, before you do anything, check and playback your input file. If your input file is garbled, MPecker will just encode the garbling. The encoding will only be as good as your input file! Also note that MPecker only supports MPEG-1 and MPEG-2 sampling frequencies, which are: 44100, 48000, 32000, 22050, 24000 and 16000 Hz.
If you are positive your input file is a good, valid frequency stereo AIFF and still you have no luck or the music is screwed, then send me a short 5 second piece of the file, including the header, and I will look into the problem. DO NOT SEND ME THE ENCODED FILE!
(3) Where can I get the source code for MPecker and MPecker Encoder?
The source code is not available at this time. There are several sources for layer 1 and layer 2 encoders on the net, but no working layer 3 sources exist on the net. The Fraunhofer Institute has a virtual monopoly on layer 3 encoders, and to use their routines, you must register with them and pay a licensing fee. You can also purchase the actual IS from ISO/IEC, catalog number ISO/IEC 11172:3 at a cost of US $135. The MPEG-2 LSF IS is referenced as ISO/IEC 13818:3, unknown cost, but probably about $100.
(4) Why does your web page link not work?
Please direct all questions about the web page to Frank Menendez. His address is listed on the main page at http://www.anime.net/~go/mpeckers.html
(5) I have a 680x0 Macintosh just sitting around and I would like to use it to batch encode mpeg files. Will you write a 680x0-compatible encoder?
This will not be completed.
(6) When I try to encode file <xxx> I get an alert about my sample not being 16 bit. Why do I get this, and how can I fix it?
If you are using Movie Player to extract your audio, be sure to select the options button and change the options to reflect 16 bit, mono or stereo, whatever you want, and a supported sampling frequency.
(7) I encoded a file using SoundEdit/SWA and one using your encoder, using a 44100 Hz sample file at 64 kbps. The SWA file sounds much better than yours does, which sounds like it was recorded under water. Why?
If you check your SWA encoded file you will find that SWA has downsampled your original sample to 22050 Hz before it encoded it. This means that the SWA encoder has 50% less audio data to process and encode than the MPecker encoder, which is not downsampling your file, but using the original input file you fed it. If you want a 64 kbps bitrate MPecker encode to sound like a 64 kbps SWA encode, downsample the input audio file before you feed it to the MPecker encoder.
(8) What samples do you use for testing when you are coding/testing your encoder?
I have a wide variety of songs which provide very good testing conditions for the encoder. Here is a partial list:
They are all very good albums, buy them and add them to your collection.
(9) Your encoder crashes when I try to do [_____]. Can you fix it?
Nobody likes bugs, least of all me. But if you would like the bug fixed, I will need the following information to intelligently deal with your problem:
1) MacOS System Version
2) Your machine configuration
3) All your selected options, including bitrate, psy model, layer and stereo mode.
4) The location of the error, including all the information on the Encoder's window.
5) The error type.
6) The encoder version you are using.
7) The sampling rate and number of channels of your input file.
This will make it much easier for me to find the bug and correct it quickly. If you have a MacsBug dump, this would help even more. MacsBug is available from apple.com.
(10) Your encoded files sound like s**t. Why?
If you have concerns about encoding quality, and you feel I should test your specific AIFF sample, send me NO MORE THAN 5 seconds of the file. DO NOT SEND ME THE ENCODED FILE - I can encode it myself.
(11) When I transfer my MPecker encoded files to a PC, they no longer will play. Why not?
Mac files have resource forks and data forks. MPecker Encoder places information in the data fork ONLY. If you have added and/or manipulated the resource fork (like, adding TAGS and other non-standard CRAP, or changed the owner or creator of the file, such as for MacAMP or for Vamp), you'll have to strip the file down to a simple data-fork-only file before you send it. It's gonna be like any other MacOS file you've ever sent - screwed up, unless YOU take precautions and address the file differences yourself.
(12) I can't seem to drag files onto the MPecker Encoder or Decoder. Why not?
You need to rebuild your desktop.
(13) Windows Media Player will not recognize files made by your encoder. Why not?
The Windows Media Player does not support ID3v2 Tags, so either strip them off, or don't use them to start with. WinAmp has no problem dealing with the ID3v2 headers, but seems to just ignore them. The use of ID3v1 tags should not affect these players.
(14) I keep getting errors when trying to extract audio from my CD player. What's going on?
Hard to say because of the wide variety of CD players out there, but the easiest way to test if something is amiss is to try to extract an Audio file using QuickTime's MoviePlayer. Set the options ON THE SECOND WINDOW WHICH IS THE SAVE WINDOW to 44100 HZ Stereo 16 bit, then try and extract the audio. If it works, the encoder should work. If it doesn't, try the "Open CD" command. If that fails, give Track Thief a try.
(15) I'm having some trouble playing your encoded files with SoundApp. Why?
SoundApp is a bit picky about the headers, the extensions, and the file format. If you use straight mp3 encoding, no TAGS, and leave the extension ".mp3", encoded files play very well with SoundApp. Tag support has been added as of version 2.6 but I have not verified the robustness of the Tag routines.
(16) I can't seem to place mp3-encoded files on my web page for download/playing. Why not?
Check and see in your web browser what you have configured to support the ".mp3" extension. If it is not your mp3 player, then change it. Make sure the extension you configure is the same as the extension on your audio file. Please DO NOT write me asking how to do this - I did not write your web browser. Also, please note that QuickTime does NOT support the mp3 format yet, thus you cannot use it to play mp3s. If you are using Tags, better make SURE before you put it on your web page that all possible players that might ever hit your web page can support them (many do NOT).
The other problem commonly occuring is that web servers are not recognizing the file as an mpeg and are sending the file output as text. OTSessionWatcher 2.0 which I HIGHLY RECOMMEND FOR DEBUGGING WEB SITE PROBLEMS ON THE MAC can provide you with the information your web site send when an mp3 link is clicked. It is available as shareware at http://www.stairways.com. Your server should send an mpeg/audio type and not a text type to your web browser before the actual stream of data.
How to Report Bugs
When reporting problems or crashes, please include the following:
1) MacOS System Version
2) Your machine configuration
3) All your selected options, including bitrate, psy model, layer and stereo mode.
4) The location of the error, including all the information on the Encoder's window.
5) The error type.
6) The encoder version you are using.
7) The sampling rate and number of channels of your input file.
This will make it much easier for me to find the bug and correct it quickly. If you have a StdLog from MacsBug, please include that as well. MacsBug is available from Apple.
If you have concerns about encoding quality, and you feel I should test your specific AIFF sample, send me NO MORE THAN 5 seconds of the ORIGINAL file. Please do not send me the encoded file - I can encode it myself.
Please check and see if your question has been answered in the FAQ section before sending me e-mail. I enjoy everyone's mail, but it takes a great deal of time away from doing coding and bug fixes, which I am sure everyone wants.
Credits
MPecker Encoder is based on ISO/IEC 11172:3 and ISO/IEC 13818:3. Portions of the program were taken from the developer's 13818 software simulation, specifically 13818:3-2, tech report distribution 10.
Optimizations on the mdct, the polyphase filter, the fast fourier transform and others are expressly copyrighted by me and may not be used or reverse engineered from this program without expressed, written, non-electronic consent from me.
MPecker Encoder was built on my PB 5300 and my PowerTower Pro 225 using CodeWarrior. It is programmed in a C++/C hybrid.
Brian Goss has gracefully provided a web site and storage space for MPecker news and releases, and I thank his generosity.
Frank Menendez does an excellent job of maintaining the MPecker web page at http://www.anime.net/~go/mpeckers.html . It is the main source of program and news updates, and I am very appreciative of all his hard work, as it leaves me much more time to work on my programs.
Ideas for the GUI were provided by David Renelt, who also runs a Macintosh and PC MPEG web page at http://www.raum.com/mpeg
Sound Designer II is a trademark of Digidesign, a division of Avid Technology, Inc.
Version History
1.0 - (Beta 19)
1) Fixed memory error after first encode.
1.0 - (Beta 18)
1) Fixed date bug.
1.0 - (Beta 17)
1) Removed MacAmp as a choice for filetype/creator.
2) Added a choice to encode either the left or right channel, or to combine the two channels into mono.
3) Genre now "sticks" between encodes. Rock now no longer becomes "Booty Bass," for example, between encodes.
4) Fixed an add folder problem with some extended CD lengths.
5) Improved layer II speed and repaired a layer II bug.
1.0 - (Beta 16)
1) Creates separate folders to hold your CD encodes (if you desire).
2) Drag support added to main window.
3) Drag support added for full disks.
4) Fixed errors reported during raw CD extraction on some CD ROM drives.
5) Fixed (finally?) length name bugs.
6) Fixed 320 kbps encoding bug (may have affected other bitrates).
7) Increased timeout interval for query of the CDDB to 45 seconds.
8) Alphabetized Genre list for Tags.
9) Added "No Genre" selection.
1.0 - (Beta 15)
1) Fixed spelling of "psychedelic" in the genre list.
2) Added CDDB server prefs
3) Added all remaining bitrates not previously supported.
4) Layer II model display incorrectly displayed.
5) ID3v1 BUG fixed.
6) Removes ':' in filenames
7) Added "change file destination" checkbox to prefs.
8) Fixed long filenames bug.
9) Fixed corruption of some files
10) Sped up the psychoacoustic model.
11) Added raw hardware i/o calls to read those pesky Enhanced CDs.